home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / gpen32k / source.exe / SRC / GPENSUB.C < prev    next >
Text File  |  1993-07-20  |  3KB  |  154 lines

  1. /*
  2.     Gpen共通関数
  3.         別ヘッダ必要版
  4. */
  5.  
  6. void umosv( int x1, int y1, int x2, int y2 )
  7. {
  8.     mosv( x1*bi, y1*bi, (x2+1)*bi-1, (y2+1)*bi-1);
  9. }
  10.  
  11. void biboxbf( int x1, int y1, int x2, int y2, int c, int h, int h2 )
  12. {
  13.     uboxf( x1*bi-h-1, y1*bi-h2-1, (x2+1)*bi+h, (y2+1)*bi+h, 15, 8, 7 );
  14.     uboxf( x1*bi-1, y1*bi-1, (x2+1)*bi, (y2+1)*bi, 8, 15, c );
  15. }
  16.  
  17. void wget( void )
  18. {
  19.     egbget( NX1, NY1, NX2, NY2, wb );
  20. }
  21.  
  22. void wput( void )
  23. {
  24.     egbput( NX1, NY1, NX2, NY2, wb );
  25.     egbputZ( WX1, WY1, WX2, WY2, NX4, NY4, wb );
  26. }
  27.  
  28. void wkk( void )
  29. {
  30.     egbget( NX1, NY1, NX2, NY2, wb );
  31.     egbputZ( WX1, WY1, WX2, WY2, NX4, NY4, wb );
  32. }
  33.  
  34. void wkugiri( int t )
  35. {
  36.     static int g=0;
  37.     char a[1024];
  38.     int i;
  39.     if ( t == 2 )
  40.         g = 0;
  41.     if ( t == 3 )
  42.         g = 1;
  43.     if ( t & g )
  44.     {
  45.         line(WX1*bi, (WY1+KS)*bi, (WX2+1)*bi-1, (WY1+KS)*bi, 8 );
  46.         for (i=1; i<NX4; i++)
  47.         {
  48.             line((WX1+KS*i)*bi, WY1*bi, (WX1+KS*i)*bi, (WY2+1)*bi-1, 8 );
  49.             line((WX1+KS*i)*bi, (WY1+KS)*bi, (WX1+KS*i)*bi, (WY1+KS)*bi, 15 );
  50.         }
  51.         egbget( WX1*bi, (WY1+KS)*bi, (WX2+1)*bi-1, (WY1+KS)*bi, a );
  52.         for (i=2; i<NY4; i++)
  53.         {
  54.             egbput(WX1*bi, (WY1+KS*i)*bi, (WX2+1)*bi-1, (WY1+KS*i)*bi, a);
  55.         }
  56.     }    else    {
  57.         boxf( WX1*bi, WY1*bi, (WX2+1)*bi-1, (WY2+1)*bi-1, 0 );
  58.     }
  59. }
  60.  
  61. int page( int c )
  62. {
  63.     static int v = 0;
  64.     char t[12];
  65.     egbget( BX1,BY1, BX2,BY2, vp);
  66.     v += c;
  67.     while (v < 0)
  68.         v += vz + 1;
  69.     while ( v > vz )
  70.         v -= vz + 1;
  71.     vp = vp0 + v * BX4 * BY4 * 2;
  72.     egbput( BX1,BY1, BX2,BY2, vp);
  73.     wpg(0);
  74.     boxf( PAX1+1, PAY1+1, PAX2-1, PAY2-1, 8 );
  75.     _itoa( v+1, t, 10 );
  76.     symbol( PAX2-4-strlen(t)*8, PAY2-1, t, 16, 15 );
  77.     wpg(1);
  78.     return (v);
  79. }
  80.  
  81. void pbtn( int mb )
  82. {
  83.     int x, y, bt = 10;
  84.     unsigned int t1, t2;
  85.     t1 = MOS_getTime();
  86.     while (mb)
  87.     {
  88.         if (mb & 1)
  89.         {
  90.             page(1);
  91.         }    else    {
  92.             page(-1);
  93.         }
  94.         do
  95.         {
  96.             t2 = MOS_getTime();
  97.             MOS_rdpos(&mb,&x,&y);
  98.         }    while (t2-t1<bt && mb!=0);
  99.         t1 = t2;
  100.         if (bt>1)
  101.             bt--;
  102.     }
  103. }
  104.  
  105. void bfgs( int mc )
  106. {
  107.     char t[12];
  108.     int p, x, y;
  109.     p = EGB_getWritePage( 0, 0 );
  110.     if (mc==1)
  111.     {
  112.         ix*=2;
  113.         if (ix>=256/bi)
  114.             ix = 1;
  115.         iy*=2;
  116.         if (iy>=256/bi)
  117.             iy = 1;
  118.     }    else    {
  119.         if (ix==1)
  120.             ix+=256/bi;
  121.         if (iy==1)
  122.             iy+=256/bi;
  123.         ix/=2;
  124.         iy/=2;
  125.     }
  126.     wpg(0);
  127.     boxf( HX1+1, HY1+1, HX2-1, HY2-1, 0 );
  128.     _itoa( ix, t, 10 );
  129.     symbol( HX2-4-strlen(t)*8, HY2-1, t, 16, 15 );
  130.     wpg(p);
  131.     mbout( &p, &x, &y );
  132. }
  133.  
  134. void mbclp( void )
  135. {
  136.     MOS_getBtnXchg( &bc );
  137.     boxf( PCX1, PCY1, PCX2, PCY2, mcl[0] );
  138.     boxf( PLX1, PLY1, PLX2, PLY2, mcl[1+bc] );
  139.     boxf( PRX1, PRY1, PRX2, PRY2, mcl[2-bc] );
  140.     wpg(0);
  141.     boxf( PCX1*bi+2, PCY1*bi-5, PCX1*bi+12, PCY1*bi-3, (mcl[0]>>15)*0xff );
  142.     boxf( PLX1*bi+2, PLY1*bi-5, PLX1*bi+12, PLY1*bi-3, (mcl[1+bc]>>15)*0xff );
  143.     boxf( PRX1*bi+2, PRY1*bi-5, PRX1*bi+12, PRY1*bi-3, (mcl[2-bc]>>15)*0xff );
  144.     wpg(1);
  145. }
  146.  
  147. void tclc(int mb, int mx, int my)
  148. {
  149.     char t[4];
  150.     egbget( mx/bi, my/bi, mx/bi, my/bi, t );
  151.     mcl[mb] = WORD(t) & CF;
  152.     mbclp();
  153. }
  154.